# gen_token.py
import time
from jose import jwt

# === 请修改为你自己的配置 ===
LIVEKIT_API_KEY = "devkey"          # ← 替换为你的 LIVEKIT_API_KEY
LIVEKIT_API_SECRET = "secret"       # ← 替换为你的 LIVEKIT_API_SECRET
ROOM_NAME = "test-room"             # 房间名
IDENTITY = "zhangzhuo2"             # 用户标识
TTL_SECONDS = 864000                 # 24小时（秒）
# ==============================

# 构造 LiveKit 要求的 JWT payload
claims = {
    "iss": LIVEKIT_API_KEY,               # issuer (API Key)
    "sub": IDENTITY,                      # subject (用户ID)
    "nbf": int(time.time()) - 10,         # Not Before（允许10秒时钟偏差）
    "exp": int(time.time()) + TTL_SECONDS, # 过期时间
    "video": {
        "room": ROOM_NAME,
        "roomJoin": True,
        "canPublish": True,
        "canSubscribe": True,
        "canPublishData": True,
        "canUpdateMetadata": True,
        # 可选：canPublishData, canUpdateMetadata 等
    }
}

# 使用 HS256 算法 + API_SECRET 签名
token = jwt.encode(
    claims=claims,
    key=LIVEKIT_API_SECRET,
    algorithm="HS256"
)

print("✅ 10*24小时有效的 LiveKit Token:")
print(token)